rust-nebula
rust-nebula
is a Rust client for developers to connect to NebulaGraph. rust-nebula
only supports NebulaGraph which uses V3 protocol now.
What we can achieve
NebulaGraph is composed of three services: Graph service, Meta service, and Storage service, which is an architecture that separates storage and computing.
Refer to nebula-go and nebula-python, we have implemented Graph Client, Meta Client and Storage Client:
- Graph Client: It supports all nGQL query. For most users, they only need this client to finish jobs.
- Meta Client: It's used to obtain some storaged info so that Storage Client can do
scan
op. - Storage Client: It could scan existed vertex and edge, and generally, it's prepared for large-scale data science engineering and data migration in the intranet.
Examples
It has some examples in examples.
Todo
This repo is under construction. Welcome everyone to actively participate in improving the rust client and achieving more functions!
- Make value wrapper provide comprehensive support for all data types in NebualGraph.
- Robust error handling mechanism for value wrapper.
- A good session pool for Graph Client, perhaps Storage Client and Meta Client could also use it
- More commonly used instructions encapsulation for Graph Client, such as create tag/vertex, show tag/vertex etc.
- Iterator for GraphQueryOutput and StorageQueryOutput.
- Stream for StorageScanOutput.
- More unit tests and code comments.
Reference
Part of the code in this project refers to the bk-rs/nebula-rs and vesoft-inc/nebula-rust project. Thank you for the authors' open source contribution.